package main

import (
	"fmt"
	"math/rand"
)

func main() {

	fmt.Print("=======================九九乘法表=====================\n")
	for i := 1; i < 10; i++ {
		for j := 1; j <= i; j++ {
			var s = i * j
			if s < 10 {
				fmt.Printf("%d * %d = %d  ", j, i, i*j)
			} else {
				fmt.Printf("%d * %d = %d ", j, i, i*j)
			}
		}
		fmt.Print("\n")
	}
	fmt.Print("=======================随机数=====================\n")
	var (
		sum     = 0
		product = 1
	)
	for i := 1; i < 21; i++ {
		num := rand.Intn(20) + 1
		if num%2 == 1 {
			sum += num
			fmt.Printf("奇数累加：%d \n", sum)

		} else {
			product *= num
			fmt.Printf("偶数累乘：%d \n", product)
		}
	}
	fmt.Print("=======================斐波那契数列=====================\n")
	//数列从第3项开始，每一项都等于前两项之和。
	var (
		index = 1
		pre1  = 1
		pre2  = 1
		num   = 0
	)
	fmt.Print("斐波那契数：")
	for {
		//第一个 pre1 第二个 pre2
		if index > 2 {
			num = pre1 + pre2
		} else {
			num = pre1
		}
		pre1, pre2 = num, pre1
		index++
		if num > 100 {
			break
		}
		fmt.Printf("%d ", num)
	}
}

// 批改意见
// 1. 乘法口诀输出结果中，结果为2位数时，输出宽度变窄了，需要调整一下；
// 2. 随机数中，不是根据随机数的奇偶来决定相加还是相乘，而是根据20个随机数的奇偶顺序来决定的